home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.1B1 / AIncludes / SoundInput.a < prev    next >
Encoding:
Text File  |  1995-04-18  |  10.4 KB  |  431 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        SoundInput.a
  3. ;
  4. ;    Contains:    Sound Input Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__SOUNDINPUT__') = 'UNDEFINED' THEN
  21. __SOUNDINPUT__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  30.     include 'AppleEvents.a'
  31.     ENDIF
  32. ;        include 'Errors.a'                                            ;
  33. ;        include 'Memory.a'                                            ;
  34. ;            include 'MixedMode.a'                                    ;
  35. ;        include 'OSUtils.a'                                        ;
  36. ;        include 'Events.a'                                            ;
  37. ;            include 'Quickdraw.a'                                    ;
  38. ;                include 'QuickdrawText.a'                            ;
  39. ;        include 'EPPC.a'                                            ;
  40. ;            include 'AppleTalk.a'                                    ;
  41. ;            include 'Files.a'                                        ;
  42. ;            include 'PPCToolbox.a'                                    ;
  43. ;            include 'Processes.a'                                    ;
  44. ;        include 'Notification.a'                                    ;
  45.  
  46.     IF &TYPE('__WINDOWS__') = 'UNDEFINED' THEN
  47.     include 'Windows.a'
  48.     ENDIF
  49. ;        include 'Controls.a'                                        ;
  50. ;            include 'Menus.a'                                        ;
  51.  
  52.     IF &TYPE('__DIALOGS__') = 'UNDEFINED' THEN
  53.     include 'Dialogs.a'
  54.     ENDIF
  55. ;        include 'TextEdit.a'                                        ;
  56.  
  57.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  58.     include 'Files.a'
  59.     ENDIF
  60.  
  61.     IF &TYPE('__SOUND__') = 'UNDEFINED' THEN
  62.     include 'Sound.a'
  63.     ENDIF
  64.  
  65. siDeviceIsConnected                EQU        1                    ;input device is connected and ready for input
  66. siDeviceNotConnected            EQU        0                    ;input device is not connected
  67. siDontKnowIfConnected            EQU        -1                    ;can't tell if input device is connected
  68. siReadPermission                EQU        0                    ;permission passed to SPBOpenDevice
  69. siWritePermission                EQU        1                    ;permission passed to SPBOpenDevice
  70.  
  71. ;Info Selectors for Sound Input Drivers
  72. siActiveChannels                EQU        'chac'                ;active channels
  73. siActiveLevels                    EQU        'lmac'                ;active meter levels
  74. siAGCOnOff                        EQU        'agc '                ;automatic gain control state
  75. siAsync                            EQU        'asyn'                ;asynchronous capability
  76. siChannelAvailable                EQU        'chav'                ;number of channels available
  77. siCompressionAvailable            EQU        'cmav'                ;compression types available
  78. siCompressionFactor                EQU        'cmfa'                ;current compression factor
  79. siCompressionHeader                EQU        'cmhd'                ;return compression header
  80. siCompressionNames                EQU        'cnam'                ;compression type names available
  81. siCompressionType                EQU        'comp'                ;current compression type
  82. siContinuous                    EQU        'cont'                ;continous recording
  83. siDeviceBufferInfo                EQU        'dbin'                ;size of interrupt buffer
  84. siDeviceConnected                EQU        'dcon'                ;input device connection status
  85. siDeviceIcon                    EQU        'icon'                ;input device icon
  86. siDeviceName                    EQU        'name'                ;input device name
  87. siHardwareBusy                    EQU        'hwbs'                ;sound hardware is in use
  88. siInputGain                        EQU        'gain'                ;input gain
  89. siInputSource                    EQU        'sour'                ;input source selector
  90. siInputSourceNames                EQU        'snam'                ;input source names
  91. siLevelMeterOnOff                EQU        'lmet'                ;level meter state
  92. siNumberChannels                EQU        'chan'                ;current number of channels
  93. siOptionsDialog                    EQU        'optd'                ;display options dialog
  94. siPlayThruOnOff                    EQU        'plth'                ;playthrough state
  95. siRecordingQuality                EQU        'qual'                ;recording quality
  96. siSampleRate                    EQU        'srat'                ;current sample rate
  97. siSampleRateAvailable            EQU        'srav'                ;sample rates available
  98. siSampleSize                    EQU        'ssiz'                ;current sample size
  99. siSampleSizeAvailable            EQU        'ssav'                ;sample sizes available
  100. siStereoInputGain                EQU        'sgai'                ;stereo input gain
  101. siTwosComplementOnOff            EQU        'twos'                ;two's complement state
  102. siVoxRecordInfo                    EQU        'voxr'                ;VOX record parameters
  103. siVoxStopInfo                    EQU        'voxs'                ;VOX stop parameters
  104. siInitializeDriver                EQU        'init'                ;reserved for internal use only
  105. siCloseDriver                    EQU        'clos'                ;reserved for internal use only
  106. siPauseRecording                EQU        'paus'                ;reserved for internal use only
  107. siUserInterruptProc                EQU        'user'                ;reserved for internal use only
  108. ;Qualities
  109. siCDQuality                        EQU        'cd  '                ;44.1kHz, stereo, 16 bit
  110. siBestQuality                    EQU        'best'                ;22kHz, mono, 8 bit
  111. siBetterQuality                    EQU        'betr'                ;22kHz, mono, MACE 3:1
  112. siGoodQuality                    EQU        'good'
  113.  
  114. ; typedef struct SPB         SPB, *SPBPtr
  115. ;user procedures called by sound input routines
  116. SPB                     RECORD    0
  117. inRefNum                 ds.l   1        ; offset: $0 (0)        ;reference number of sound input device
  118. count                     ds.l   1        ; offset: $4 (4)        ;number of bytes to record
  119. milliseconds             ds.l   1        ; offset: $8 (8)        ;number of milliseconds to record
  120. bufferLength             ds.l   1        ; offset: $C (12)        ;length of buffer in bytes
  121. bufferPtr                 ds.l   1        ; offset: $10 (16)        ;buffer to store sound data in
  122. completionRoutine         ds.l   1        ; offset: $14 (20)        ;completion routine
  123. interruptRoutine         ds.l   1        ; offset: $18 (24)        ;interrupt routine
  124. userLong                 ds.l   1        ; offset: $1C (28)        ;user-defined field
  125. error                     ds.w   1        ; offset: $20 (32)        ;error
  126. unused1                     ds.l   1        ; offset: $22 (34)        ;reserved - must be zero
  127. sizeof                     EQU *            ; size:   $26 (38)
  128.                         ENDR
  129.  
  130. ;
  131. ; pascal NumVersion SPBVersion(void)
  132. ;
  133.     IF ¬ GENERATINGCFM THEN
  134.         Macro
  135.         _SPBVersion
  136.             dc.w     $203C
  137.             dc.w     $0000
  138.             dc.w     $0014
  139.             dc.w     $A800
  140.         EndM
  141.     ELSE
  142.         IMPORT_CFM_FUNCTION    SPBVersion
  143.     ENDIF
  144.  
  145. ;
  146. ; pascal OSErr SndRecord(ModalFilterUPP filterProc, Point corner, OSType quality, SndListHandle *sndHandle)
  147. ;
  148.     IF ¬ GENERATINGCFM THEN
  149.         Macro
  150.         _SndRecord
  151.             dc.w     $203C
  152.             dc.w     $0804
  153.             dc.w     $0014
  154.             dc.w     $A800
  155.         EndM
  156.     ELSE
  157.         IMPORT_CFM_FUNCTION    SndRecord
  158.     ENDIF
  159.  
  160. ;
  161. ; pascal OSErr SndRecordToFile(ModalFilterUPP filterProc, Point corner, OSType quality, short fRefNum)
  162. ;
  163.     IF ¬ GENERATINGCFM THEN
  164.         Macro
  165.         _SndRecordToFile
  166.             dc.w     $203C
  167.             dc.w     $0708
  168.             dc.w     $0014
  169.             dc.w     $A800
  170.         EndM
  171.     ELSE
  172.         IMPORT_CFM_FUNCTION    SndRecordToFile
  173.     ENDIF
  174.  
  175. ;
  176. ; pascal OSErr SPBSignInDevice(short deviceRefNum, ConstStr255Param deviceName)
  177. ;
  178.     IF ¬ GENERATINGCFM THEN
  179.         Macro
  180.         _SPBSignInDevice
  181.             dc.w     $203C
  182.             dc.w     $030C
  183.             dc.w     $0014
  184.             dc.w     $A800
  185.         EndM
  186.     ELSE
  187.         IMPORT_CFM_FUNCTION    SPBSignInDevice
  188.     ENDIF
  189.  
  190. ;
  191. ; pascal OSErr SPBSignOutDevice(short deviceRefNum)
  192. ;
  193.     IF ¬ GENERATINGCFM THEN
  194.         Macro
  195.         _SPBSignOutDevice
  196.             dc.w     $203C
  197.             dc.w     $0110
  198.             dc.w     $0014
  199.             dc.w     $A800
  200.         EndM
  201.     ELSE
  202.         IMPORT_CFM_FUNCTION    SPBSignOutDevice
  203.     ENDIF
  204.  
  205. ;
  206. ; pascal OSErr SPBGetIndexedDevice(short count, Str255 deviceName, Handle *deviceIconHandle)
  207. ;
  208.     IF ¬ GENERATINGCFM THEN
  209.         Macro
  210.         _SPBGetIndexedDevice
  211.             dc.w     $203C
  212.             dc.w     $0514
  213.             dc.w     $0014
  214.             dc.w     $A800
  215.         EndM
  216.     ELSE
  217.         IMPORT_CFM_FUNCTION    SPBGetIndexedDevice
  218.     ENDIF
  219.  
  220. ;
  221. ; pascal OSErr SPBOpenDevice(ConstStr255Param deviceName, short permission, long *inRefNum)
  222. ;
  223.     IF ¬ GENERATINGCFM THEN
  224.         Macro
  225.         _SPBOpenDevice
  226.             dc.w     $203C
  227.             dc.w     $0518
  228.             dc.w     $0014
  229.             dc.w     $A800
  230.         EndM
  231.     ELSE
  232.         IMPORT_CFM_FUNCTION    SPBOpenDevice
  233.     ENDIF
  234.  
  235. ;
  236. ; pascal OSErr SPBCloseDevice(long inRefNum)
  237. ;
  238.     IF ¬ GENERATINGCFM THEN
  239.         Macro
  240.         _SPBCloseDevice
  241.             dc.w     $203C
  242.             dc.w     $021C
  243.             dc.w     $0014
  244.             dc.w     $A800
  245.         EndM
  246.     ELSE
  247.         IMPORT_CFM_FUNCTION    SPBCloseDevice
  248.     ENDIF
  249.  
  250. ;
  251. ; pascal OSErr SPBRecord(SPBPtr inParamPtr, Boolean asynchFlag)
  252. ;
  253.     IF ¬ GENERATINGCFM THEN
  254.         Macro
  255.         _SPBRecord
  256.             dc.w     $203C
  257.             dc.w     $0320
  258.             dc.w     $0014
  259.             dc.w     $A800
  260.         EndM
  261.     ELSE
  262.         IMPORT_CFM_FUNCTION    SPBRecord
  263.     ENDIF
  264.  
  265. ;
  266. ; pascal OSErr SPBRecordToFile(short fRefNum, SPBPtr inParamPtr, Boolean asynchFlag)
  267. ;
  268.     IF ¬ GENERATINGCFM THEN
  269.         Macro
  270.         _SPBRecordToFile
  271.             dc.w     $203C
  272.             dc.w     $0424
  273.             dc.w     $0014
  274.             dc.w     $A800
  275.         EndM
  276.     ELSE
  277.         IMPORT_CFM_FUNCTION    SPBRecordToFile
  278.     ENDIF
  279.  
  280. ;
  281. ; pascal OSErr SPBPauseRecording(long inRefNum)
  282. ;
  283.     IF ¬ GENERATINGCFM THEN
  284.         Macro
  285.         _SPBPauseRecording
  286.             dc.w     $203C
  287.             dc.w     $0228
  288.             dc.w     $0014
  289.             dc.w     $A800
  290.         EndM
  291.     ELSE
  292.         IMPORT_CFM_FUNCTION    SPBPauseRecording
  293.     ENDIF
  294.  
  295. ;
  296. ; pascal OSErr SPBResumeRecording(long inRefNum)
  297. ;
  298.     IF ¬ GENERATINGCFM THEN
  299.         Macro
  300.         _SPBResumeRecording
  301.             dc.w     $203C
  302.             dc.w     $022C
  303.             dc.w     $0014
  304.             dc.w     $A800
  305.         EndM
  306.     ELSE
  307.         IMPORT_CFM_FUNCTION    SPBResumeRecording
  308.     ENDIF
  309.  
  310. ;
  311. ; pascal OSErr SPBStopRecording(long inRefNum)
  312. ;
  313.     IF ¬ GENERATINGCFM THEN
  314.         Macro
  315.         _SPBStopRecording
  316.             dc.w     $203C
  317.             dc.w     $0230
  318.             dc.w     $0014
  319.             dc.w     $A800
  320.         EndM
  321.     ELSE
  322.         IMPORT_CFM_FUNCTION    SPBStopRecording
  323.     ENDIF
  324.  
  325. ;
  326. ; pascal OSErr SPBGetRecordingStatus(long inRefNum, short *recordingStatus, short *meterLevel, unsigned long *totalSamplesToRecord, unsigned long *numberOfSamplesRecorded, unsigned long *totalMsecsToRecord, unsigned long *numberOfMsecsRecorded)
  327. ;
  328.     IF ¬ GENERATINGCFM THEN
  329.         Macro
  330.         _SPBGetRecordingStatus
  331.             dc.w     $203C
  332.             dc.w     $0E34
  333.             dc.w     $0014
  334.             dc.w     $A800
  335.         EndM
  336.     ELSE
  337.         IMPORT_CFM_FUNCTION    SPBGetRecordingStatus
  338.     ENDIF
  339.  
  340. ;
  341. ; pascal OSErr SPBGetDeviceInfo(long inRefNum, OSType infoType, void *infoData)
  342. ;
  343.     IF ¬ GENERATINGCFM THEN
  344.         Macro
  345.         _SPBGetDeviceInfo
  346.             dc.w     $203C
  347.             dc.w     $0638
  348.             dc.w     $0014
  349.             dc.w     $A800
  350.         EndM
  351.     ELSE
  352.         IMPORT_CFM_FUNCTION    SPBGetDeviceInfo
  353.     ENDIF
  354.  
  355. ;
  356. ; pascal OSErr SPBSetDeviceInfo(long inRefNum, OSType infoType, void *infoData)
  357. ;
  358.     IF ¬ GENERATINGCFM THEN
  359.         Macro
  360.         _SPBSetDeviceInfo
  361.             dc.w     $203C
  362.             dc.w     $063C
  363.             dc.w     $0014
  364.             dc.w     $A800
  365.         EndM
  366.     ELSE
  367.         IMPORT_CFM_FUNCTION    SPBSetDeviceInfo
  368.     ENDIF
  369.  
  370. ;
  371. ; pascal OSErr SPBMillisecondsToBytes(long inRefNum, long *milliseconds)
  372. ;
  373.     IF ¬ GENERATINGCFM THEN
  374.         Macro
  375.         _SPBMillisecondsToBytes
  376.             dc.w     $203C
  377.             dc.w     $0440
  378.             dc.w     $0014
  379.             dc.w     $A800
  380.         EndM
  381.     ELSE
  382.         IMPORT_CFM_FUNCTION    SPBMillisecondsToBytes
  383.     ENDIF
  384.  
  385. ;
  386. ; pascal OSErr SPBBytesToMilliseconds(long inRefNum, long *byteCount)
  387. ;
  388.     IF ¬ GENERATINGCFM THEN
  389.         Macro
  390.         _SPBBytesToMilliseconds
  391.             dc.w     $203C
  392.             dc.w     $0444
  393.             dc.w     $0014
  394.             dc.w     $A800
  395.         EndM
  396.     ELSE
  397.         IMPORT_CFM_FUNCTION    SPBBytesToMilliseconds
  398.     ENDIF
  399.  
  400. ;
  401. ; pascal OSErr SetupSndHeader(SndListHandle sndHandle, short numChannels, UnsignedFixed sampleRate, short sampleSize, OSType compressionType, short baseNote, unsigned long numBytes, short *headerLen)
  402. ;
  403.     IF ¬ GENERATINGCFM THEN
  404.         Macro
  405.         _SetupSndHeader
  406.             dc.w     $203C
  407.             dc.w     $0D48
  408.             dc.w     $0014
  409.             dc.w     $A800
  410.         EndM
  411.     ELSE
  412.         IMPORT_CFM_FUNCTION    SetupSndHeader
  413.     ENDIF
  414.  
  415. ;
  416. ; pascal OSErr SetupAIFFHeader(short fRefNum, short numChannels, UnsignedFixed sampleRate, short sampleSize, OSType compressionType, unsigned long numBytes, unsigned long numFrames)
  417. ;
  418.     IF ¬ GENERATINGCFM THEN
  419.         Macro
  420.         _SetupAIFFHeader
  421.             dc.w     $203C
  422.             dc.w     $0B4C
  423.             dc.w     $0014
  424.             dc.w     $A800
  425.         EndM
  426.     ELSE
  427.         IMPORT_CFM_FUNCTION    SetupAIFFHeader
  428.     ENDIF
  429.  
  430.     ENDIF ; __SOUNDINPUT__
  431.